package com.zeratul.common.core.context.base;

import cn.hutool.core.util.ObjectUtil;

import java.util.function.Supplier;

/**
 * 自定义ThreadLocal，提供默认初始化方法
 */
public class ZtInheritableThreadLocal<T> extends InheritableThreadLocal<T>{

    /**
     * 默认初始化的方法
     * @return
     */
    public T get(Supplier<T> supplier) {
        T t = super.get();
        if (ObjectUtil.isNull(t)) {
            t = supplier.get();
            super.set(t);
        }
        return t;
    }
}
